Notebook view folder navigation

James Peret 8 years ago
parent
commit
b34ab93e35
2 changed files with 28 additions and 2 deletions
  1. 1 1
      app/scripts/controllers/app-ctrl.js
  2. 27 1
      app/scripts/services/file-service.js

+ 1 - 1
app/scripts/controllers/app-ctrl.js

@@ -23,7 +23,7 @@ angular.module('codexApp.index', [])
23 23
           $scope.files = FileService.getFolders();
24 24
           break;
25 25
         case "Notebook":
26
-          $scope.files = FileService.getAllFiles($scope.current_folder);
26
+          $scope.files = FileService.getFiles($scope.current_folder);
27 27
           break;
28 28
       }
29 29
     }

+ 27 - 1
app/scripts/services/file-service.js

@@ -27,6 +27,7 @@ angular.module('codexApp')
27 27
 
28 28
   var getFileType = function(path) {
29 29
     var extension = getFilePathExtension(path);
30
+    if (typeof(extension)==='undefined' || extension == "") extension = 'dir';
30 31
     switch (extension) {
31 32
       case "pdf":
32 33
         return "Document";
@@ -36,8 +37,10 @@ angular.module('codexApp')
36 37
         return "Image";
37 38
       case "md":
38 39
         return "Markdown";
39
-      default:
40
+      case 'dir':
40 41
         return "Folder";
42
+      default:
43
+        return "File";
41 44
     }
42 45
   }
43 46
 
@@ -170,6 +173,23 @@ angular.module('codexApp')
170 173
     return results;
171 174
   };
172 175
 
176
+  var getFilesFromFolder = function(dir) {
177
+    if (typeof(dir)==='undefined') dir = notes_dir;
178
+    var filesystem = require("fs");
179
+    var results = [];
180
+    filesystem.readdirSync(dir).forEach(function(file) {
181
+      file_path = dir+'/'+file;
182
+      var stat = filesystem.statSync(file_path);
183
+      if(isValidFile(file)) {
184
+        var jsonData = {};
185
+        var file_obj = SetFileInfo(jsonData, dir, file_path, stat)
186
+        results.push(file_obj);
187
+      }
188
+    });
189
+    $rootScope.$broadcast('file-service:files-loaded');
190
+    return results;
191
+  };
192
+
173 193
   var findNoteInFolder = function(note_id, dir) {
174 194
     if (typeof(dir)==='undefined') dir = notes_dir;
175 195
     var filesystem = require("fs");
@@ -337,6 +357,12 @@ angular.module('codexApp')
337 357
     return notes.sort(date_sort_asc);
338 358
   }
339 359
 
360
+  this.getFiles = function(dir) {
361
+    if (typeof(dir)==='undefined') dir = notes_dir;
362
+    notes = getFilesFromFolder(dir);
363
+    return notes.sort(date_sort_asc);
364
+  }
365
+
340 366
   this.getAllNotes = function() {
341 367
     notes = getAllFilesFromFolder();
342 368
     notes = filterNotes(notes);